/************************* * * * * * * * * * * * * ***************************
    Copyright (c) 1999-2014 Ryan Bobko
                       ryan@ostrich-emulators.com

    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 ************************** * * * * * * * * * * * * **************************/

#ifndef _LOGGER_H
#define	_LOGGER_H

#include <QString>

enum LogLevel {
  None, Fatal, Error, Warn, Info, Debug, All
};

class Logger {
public:
  virtual ~Logger( ){}
  static Logger& instance( );

  static void error( const QString& out );
  static void debug( const QString& out );
  static void warn( const QString& out );
  static void info( const QString& out );
  static void fatal( const QString& out );
  static void none( const QString& out );
  void log( const QString& out, LogLevel lev ) const;

  static void setLevel( LogLevel lev );
  void setLev( LogLevel lev );

private:
  LogLevel level;
  static Logger * me;

  Logger( );
};


#endif	/* _LOGGER_H */

